package edu.nf.project.services.employeeAndCustomerInformation;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import edu.nf.project.entitys.dto.employeeAndCustomerInformation.CouponDTO;
import edu.nf.project.entitys.entity.employeeAndCustomerInformation.convention.Coupon;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 优惠券服务接口
 */
public interface CouponService {
    /**
     * 分页查询优惠券列表
     * @param page 分页参数
     * @return 分页结果
     */
    Page<Coupon> getCouponList(Page<Coupon> page);

    /**
     * 获取优惠券详细信息
     * @param couponId 优惠券ID
     * @return 优惠券信息
     */
    Coupon getCouponInfo(Integer couponId);

    /**
     * 创建新优惠券
     * @param coupon 优惠券信息
     * @return 是否成功
     */
    boolean createCoupon(Coupon coupon);

    /**
     * 将优惠券分配给顾客
     * @param customerId 顾客ID
     * @param couponId 优惠券ID
     * @return 是否成功
     */
    boolean assignCouponToCustomer(Integer customerId, Integer couponId);

    /**
     * 将优惠券分配给会员
     * @param memberId 会员ID
     * @param couponId 优惠券ID
     * @return 是否成功
     */
    boolean assignCouponToMember(Integer memberId, Integer couponId);

    /**
     * 根据账户编号查找所有未过期的优惠券信息
     * @param uId
     * @return
     */
    List<CouponDTO> listCouponByUsersId(Integer uId);

    /**
     * 优惠卷列表展示
     * @return
     */
    List<Coupon> listCouponInfo();

    /**
     * 用户添加优惠卷
     * @param customer_id 顾客ID
     * @param coupon_id 优惠卷ID
     * @param deadline_time 期限
     * @return
     */
    Boolean addCouponCustomer(Integer customer_id,Integer coupon_id, Long deadline_time);

    /**
     * 编辑优惠券
     * @param coupon 优惠券信息
     * @return 是否成功
     */
    boolean updCoupon(Coupon coupon);
} 